Telegram Group & Telegram Channel
πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска: парсим MBR ΠΈ GPT Π½Π° Go

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСхничСский Π³Π°ΠΉΠ΄ β€” ΠΊΠ°ΠΊ Π½Π° языкС Go Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), работая Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с «сырыми» Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

πŸ“Œ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°:
β€’ Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 512 Π±Π°ΠΉΡ‚ с диска (MBR)
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β€’ ΠŸΠ°Ρ€ΡΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры (MBRPartition, GPTHeader ΠΈ Π΄Ρ€.)
β€’ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅: смСщСниС, Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΈΠΏ, имя (для GPT)

πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:
1. MBR (Master Boot Record)
β€’ Π”ΠΎ 4 основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” 2 Π’Π‘
β€’ Π’Π°Π±Π»ΠΈΡ†Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСкторС (512 Π±Π°ΠΉΡ‚)
β€’ КаТдая запись β€” 16 Π±Π°ΠΉΡ‚, с полями CHS, LBA, Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ
β€’ Π’ ΠΊΠΎΠ½Ρ†Π΅ сигнатура 0x55AA

2. GPT (GUID Partition Table)
β€’ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ стандарт с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ >2 Π’Π‘
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ GUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 128 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ основной ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² UTF‑16

πŸ“– ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π² Go:
β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ описаны Ρ‡Π΅Ρ€Π΅Π· struct с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ полями
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ binary.Read для чтСния Π±Π»ΠΎΠΊΠΎΠ²
β€’ Π•ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, смСщСниС ΠΈ, ΠΏΡ€ΠΈ GPT, имя Ρ€Π°Π·Π΄Π΅Π»Π°.

πŸ’‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ устроСна Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° дисков
β€’ Π£Ρ‡ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Go
β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмного программирования, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, диагностики ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ

πŸ§ͺ Автор Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΈ логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм
β€’ РСализация Π² WebAssembly для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/golang_books/996
Create:
Last Update:

πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска: парсим MBR ΠΈ GPT Π½Π° Go

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСхничСский Π³Π°ΠΉΠ΄ β€” ΠΊΠ°ΠΊ Π½Π° языкС Go Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), работая Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с «сырыми» Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

πŸ“Œ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°:
β€’ Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 512 Π±Π°ΠΉΡ‚ с диска (MBR)
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β€’ ΠŸΠ°Ρ€ΡΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры (MBRPartition, GPTHeader ΠΈ Π΄Ρ€.)
β€’ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅: смСщСниС, Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΈΠΏ, имя (для GPT)

πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:
1. MBR (Master Boot Record)
β€’ Π”ΠΎ 4 основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” 2 Π’Π‘
β€’ Π’Π°Π±Π»ΠΈΡ†Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСкторС (512 Π±Π°ΠΉΡ‚)
β€’ КаТдая запись β€” 16 Π±Π°ΠΉΡ‚, с полями CHS, LBA, Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ
β€’ Π’ ΠΊΠΎΠ½Ρ†Π΅ сигнатура 0x55AA

2. GPT (GUID Partition Table)
β€’ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ стандарт с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ >2 Π’Π‘
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ GUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 128 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ основной ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² UTF‑16

πŸ“– ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π² Go:
β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ описаны Ρ‡Π΅Ρ€Π΅Π· struct с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ полями
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ binary.Read для чтСния Π±Π»ΠΎΠΊΠΎΠ²
β€’ Π•ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, смСщСниС ΠΈ, ΠΏΡ€ΠΈ GPT, имя Ρ€Π°Π·Π΄Π΅Π»Π°.

πŸ’‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ устроСна Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° дисков
β€’ Π£Ρ‡ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Go
β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмного программирования, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, диагностики ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ

πŸ§ͺ Автор Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΈ логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм
β€’ РСализация Π² WebAssembly для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ

BY Golang Books




Share with your friend now:
tg-me.com/golang_books/996

View MORE
Open in Telegram


Golang Books Telegram | DID YOU KNOW?

Date: |

China’s stock markets are some of the largest in the world, with total market capitalization reaching RMB 79 trillion (US$12.2 trillion) in 2020. China’s stock markets are seen as a crucial tool for driving economic growth, in particular for financing the country’s rapidly growing high-tech sectors.Although traditionally closed off to overseas investors, China’s financial markets have gradually been loosening restrictions over the past couple of decades. At the same time, reforms have sought to make it easier for Chinese companies to list on onshore stock exchanges, and new programs have been launched in attempts to lure some of China’s most coveted overseas-listed companies back to the country.

The global forecast for the Asian markets is murky following recent volatility, with crude oil prices providing support in what has been an otherwise tough month. The European markets were down and the U.S. bourses were mixed and flat and the Asian markets figure to split the difference.The TSE finished modestly lower on Friday following losses from the financial shares and property stocks.For the day, the index sank 15.09 points or 0.49 percent to finish at 3,061.35 after trading between 3,057.84 and 3,089.78. Volume was 1.39 billion shares worth 1.30 billion Singapore dollars. There were 285 decliners and 184 gainers.

Golang Books from br


Telegram Golang Books
FROM USA